package com.mm.cloud.lease.vo.income.preview;

import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 账单预览-子项 VO
 * 用途：描述某周期中的具体收款项。
 * 字段说明：
 * - subIncomeType：子项类型（0房租押金、1房租、2其他费、3其他押金）。
 * - dicId：字典ID（当类型为其他费/其他押金时使用）。
 * - amount：该子项金额。
 * - remark：备注，预留给前端或业务说明。
 */
@Data
public class TenantSubIncomePreviewVO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /** 子账单类型 0-房租押金 1-房租 2-其他费 3-其他押金 */
    private Byte subIncomeType;

    /** 子账单字典ID（其他费/其他押金） */
    private Long subIncomeDicId;

    /** 有效期间隔-年 */
    private Integer validYear;

    /** 有效期间隔-月 */
    private Integer validMonth;

    /** 有效期间隔-天 */
    private Integer validDay;

    /** 周期覆盖的开始时间 */
    private java.time.LocalDateTime startValidDate;

    /** 周期覆盖的结束时间 */
    private java.time.LocalDateTime endValidDate;

    /** 缴费顺序号（1开始递增） */
    private Integer payCount;

    /** 应付日期 */
    private java.time.LocalDateTime payDate;

    /** 应收金额 */
    private BigDecimal payMoney;

    /** 欠费金额（默认=应收） */
    private BigDecimal debtMoney;

    /** 缴费状态 1-未收 2-收部分 3-已收完 4-坏账（默认1） */
    private Byte payStatus;

    /** 已生成流水金额（默认0） */
    private BigDecimal financeMoney;

    /** 未生成流水金额（默认=应收） */
    private BigDecimal unfinanceMoney;

    /** 滞纳金（默认0） */
    private BigDecimal lateFeeMoney;

    /** 减免滞纳金（默认0） */
    private BigDecimal breakLateFeeMoney;

    /** 是否坏账 1-否 2-是（默认1-否） */
    private Byte isBadDebt;

    /** 创建人ID（预览取当前登录人） */
    private Long createrId;

    /** 创建时间（预览取当前时间） */
    private java.time.LocalDateTime createTime;

    /** 删除标记 0-未删除 1-删除（默认0） */
    private Byte isDelete;
}


